//                            _ooOoo_  
//                           o8888888o  
//                           88" . "88  
//                           (| -_- |)  
//                            O\ = /O  
//                        ____/`---'\____  
//                      .   ' \\| |// `.  
//                       / \\||| : |||// \  
//                     / _||||| -:- |||||- \  
//                       | | \\\ - /// | |  
//                     | \_| ''\---/'' | |  
//                      \ .-\__ `-` ___/-. /  
//                   ___`. .' /--.--\ `. . __  
//                ."" '< `.___\_<|>_/___.' >'"".  
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |  
//                 \ \ `-. \_ __\ /__ _/ .-` / /  
//         ======`-.____`-.___\_____/___.-`____.-'======  
//                            `=---='  
//  
//         .............................................  
//                  佛祖保佑             永无BUG 
//          佛曰:  
//                  写字楼里写字间，写字间里程序员；  
//                  程序人员写程序，又拿程序换酒钱。  
//                  酒醒只在网上坐，酒醉还来网下眠；  
//                  酒醉酒醒日复日，网上网下年复年。  
//                  但愿老死电脑间，不愿鞠躬老板前；  
//                  奔驰宝马贵者趣，公交自行程序员。  
//                  别人笑我忒疯癫，我笑自己命太贱；  
//                  不见满街漂亮妹，哪个归得程序员？  


/* ****************************************************************************
 * Author: 671643387
 * Date: 2015/5/5
 * ***************************************************************************/

exports.query = function(query, resp, callback) {
    if (isNaN(query.minSid) || isNaN(query.maxSid) ||
        isNaN(query.minTime) || isNaN(query.maxTime)) {
        resp.code = 1; resp.desc = 'invalid params';
        callback(); return;
    }

    var minSid = query.minSid;
    var maxSid = query.maxSid;
    var minTime = query.minTime;
    var maxTime = query.maxTime;


    async.series([
        function(cb) {
            var sql = gStat.pool.format("SELECT * FROM online WHERE sid BETWEEN ? AND ? AND day BETWEEN ? AND ?;", [
                minSid, maxSid,
                minTime, maxTime
            ]);
            gStat.pool.query(sql, function(err, res){
                if (err) cb(err);
                else {
                    resp.data = res || [];
                    cb(null);
                }
            });
        }
    ], function(err){
        if (err) {
            resp.code = 1;
            resp.desc = util.format("%j", err);
        }
        callback();
    });
};